#include <iostream>
#include<string>
#include<map>
#include<vector>
//struct Compare
//{
//    bool operator()(const int& a, const int& b)const
//    {
//        return a > b;
//    }
//};
//int main()
//{
//    std::multimap<int, std::string, Compare>students;
//    int input = 0;
//    std::cin >> input;
//    for (int i = 0;i < input;i++)
//    {
//        std::string name;
//        int score;
//        std::cin >> name;
//        std::cin >> score;
//        students.insert(std::pair<int, std::string>(score, name));
//    }
//    for ( auto it =students.begin();it!=students.end();it++)
//    {
//        std::cout << it->second  <<" " << it->first << std::endl;
//    }
//    return 0;
//}
#include<unordered_map>
class Solution
{
public:
	std::vector<int> twoSum(const std::vector<int>& nums, const int& target)
	{
		std::unordered_map<int,int>hashTable;
		{
			for (int i=0;i<nums.size();i++)
			{
				auto it = hashTable.find(target - nums[i]);
				if (it!=hashTable.end())
				{
					return { it->second,i };
				}
				hashTable[nums[i]] = i;
			}
			return {};
		}
	}

};
